﻿
namespace SistemaLogistica.Business.Logic
{
    using System;
    using System.Collections.Generic;
    using SistemaLogistica.Business.Entities;
    using SistemaLogistica.Business.Entities.Types;
    using SistemaLogistica.DataAccess;

    public class PedidoManager
    {
        private PedidoManager() { }

        private static readonly PedidoManager instancia = new PedidoManager();

        public static PedidoManager Instancia
        {
            get { return instancia; }
        }

        public List<Pedido> ListarPorTipo(PedidoType tipo)
        {
            try
            {
                return PedidoData.Instancia.ListarPorTipo(tipo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<Pedido> Buscar(DateTime desde, DateTime hasta, PedidoType tipo)
        {
            try
            {
                return PedidoData.Instancia.Buscar(desde, hasta, tipo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public Pedido ObtenerPorID(int idPedido)
        {
            try
            {
                return PedidoData.Instancia.ObtenerPorID(idPedido);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Registrar(Pedido pedido)
        {
            try
            {
                PedidoData.Instancia.Registrar(pedido);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Modificar(Pedido pedido)
        {
            try
            {
                PedidoData.Instancia.Modificar(pedido);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Eliminar(int idPedido)
        {
            try
            {
                PedidoData.Instancia.Eliminar(idPedido);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}
